#include <stdio.h>

int main()
{
    const char* message = "you can see it!\n";
    //fputs(message, stdout);
    // ./c_test > log_1.txt
    // 本质是吧stdout的内容重定向到文件中
    fputs(message, stderr);
//    // ./c_test > log_2.txt
//    // 这里stderr的内容就不能重定向到文件中
//
//    //读的方式打开文件
//    FILE* fp = fopen("./log1.txt", "r");
//
//    if (fp == NULL)
//    {
//        perror("fopen error");
//        return 1;
//    }
//
//    char buffer[64]= {};
////    fgets函数功能为从指定的流中读取数据，每次读取一行
////    其原型为：char *fgets(char *str, int n, FILE *stream)
////    从指定的流 stream 读取一行，并把它存储在 str 所指向的字符串内
////    当读取 (n-1) 个字符时，或者读取到换行符时
////    或者到达文件末尾时，它会停止，具体视情况而定
//    while(fgets(buffer, sizeof(buffer), fp))
//    {
//        printf("%s", buffer);
//    }
//
/////    feof是C语言标准库函数，其原型在stdio.h中
/////    其功能是检测流上的文件结束符，如果文件结束
/////    则返回非0值，否则返回0
/////    （即，文件结束：返回非0值；文件未结束：返回0值）
//
//    if (!feof(fp))
//    {
//        printf("fgets quit not normal!\n");
//    }
//    else 
//    {
//        printf("fgets quit normal!\n");
//    }
//
//    //写的方式打开文件
//    FILE* fp2 = fopen("./log2.txt", "w");
//
//    const char* msg2 = "hello qingdiaoshen\n";
//
//    int count2 = 10;
//    while(count2--)
//    {
//        fputs(msg2, fp2);
//    }
//
//    //追加的方式打开文件
//    FILE* fp3 = fopen("./log3.txt", "a");
//
//    const char* msg3 = "you are good boy!\n";
//
//    int count3 = 10;
//    while(count3--)
//    {
//        fputs(msg3, fp3);
//    }
//
//    fclose(fp);
//    fclose(fp2);
//    fclose(fp3);
//
//    return 0;
}
